A cluster system includes a plurality of servers connected to each other through a network. A micro-server has a structure in which multiple computing nodes (e.g. computing cards) having a central processing unit (CPU) and a memory share a storage device. The micro-server is similar to the cluster system in that computing nodes are connected to each other through a system bus. That is to say, servers in the cluster system are connected to each other through a network, while computing nodes in the micro-server are connected to each other through a system bus. Hereinafter, in order to avoid confusion of terms, a system will represent a cluster system or a micro-server. A node will represent one server in a cluster system or one computing node in a micro-server.
A service provider uses a system to execute various applications, such as a web server, a database (DB) server, an index server, a cache server, or the like. Since the respective applications have mutually different operation characteristics and requirements, and users' use patterns of the applications are also different from each other, the performance and operation characteristic required to the system may vary depending on time.
FIG. 1 is a diagram showing an example of a conventional method for scheduling computing. As shown in FIG. 1, a system can operate a plurality of web servers. That is to say, each node in the system operates by a web server. In a system as shown in FIG. 1, all the nodes operate by web servers by day during which user requests are many. By night during which, generally, requests are a few, the web servers migrate to a few nodes, and the remaining nodes are powered off in order to reduce power consumption.
It is important to increase the throughput of requests per unit time when a web server operates on each node. However, when a plurality of web servers operate on one node, it is necessary not only to increase the throughput, but also to fair-share system resources including a central processing unit (CPU) to the respective web servers. In such a state, in order to ensure the performance expected to the system, it is necessary for the scheduler of each node to change the performance or operation characteristic thereof depending on time or situations.
FIG. 2 is a diagram showing another example of a conventional method for scheduling computing. As shown in FIG. 2, after web servers migrate, a node may not be powered off, but may execute another application, for example, a Hadoop or the like. Tasks processed by a web server are characterized by small data, random access, and interactivity, while a Hadoop is characterized by large data, sequential access, and batch. In such an example, it is necessary to adaptively change the scheduler of each node to be suitable for tasks according to states, in order to meet the quality of service (QoS) desired by a service provider.
FIG. 3 is a diagram showing a still another example of a conventional method for scheduling computing. Real-time tasks and non-real-time tasks may be divided into and executed on multiple nodes according to states, and such a case is shown in FIG. 3. An example of real-time tasks is a video transcoding and streaming service. Since a real-time task must process a request within a set deadline, a scheduler schedules the task in consideration of the priority of the task, a period, a deadline, and the like. However, a non-real-time task does not require such a complicated calculation, which may just deteriorate the performance thereof.
The conventional scheduling methods as described above are generally focused on the techniques of: monitoring the operation of a system; and controlling the voltage or frequency of a central processing unit (CPU) or enabling all nodes to uniformly perform tasks through load balancing with a result of the monitoring, mainly, for the purpose of reducing power consumption.
As described above, since each node executes applications having mutually different operations characteristics according to time or according to states, a system must be able to recognize such a state and, accordingly, to change the operation characteristic of a scheduler by itself. However, the conventional system has no function of dynamically changing a scheduler without rebooting, and thus there is a limit in the optimization of performance in a state in which an application is changed.